home *** CD-ROM | disk | FTP | other *** search
AMOS Source Code | 1992-12-07 | 1.6 KB | 69 lines |
- ANZTR=59 : ANZEX=29
- Dim TR(ANZTR-1,6),EX(ANZEX-1,4)
- Global TR(),EX(),ANZTR,ANZEX
- Screen Open 0,320,200,16,0
- Curs Off : Flash Off : Paper 0 : Pen 1 : Cls
- For A=0 To 7 : Colour A,A*$200+Max(A-3,0)*$20 : Next
- Double Buffer
- Autoback 0
- Do
- Screen Swap : Wait Vbl
- Cls
- MOVECHUNKS
- ANIEXPLS
- X=X Mouse-128 : Y=Y Mouse-50 : M=Mouse Key
- If M=0 and P=1 Then P=0
- If M and P=0 Then EXLODE1[X,Y,5,5] : EXLODE2[X,Y,5,5] : P=1
- DRACHUNKS
- DRAEXPLS
- Loop
- Procedure ANIEXPLS
- For A=0 To ANZEX-1
- If EX(A,3)<0 Then Dec EX(A,2) Else Dec EX(A,3)
- Next
- End Proc
- Procedure DRAEXPLS
- For A=0 To ANZEX-1
- If EX(A,3)<0 and EX(A,2)>1 Then Ink EX(A,2)/2+1 : Circle EX(A,0),EX(A,1),EX(A,2)-1
- Next
- End Proc
- Procedure MOVECHUNKS
- Ink 0
- For A=0 To ANZTR-1
- If TR(A,6)
- Add TR(A,0),TR(A,2),0 To 319 : Add TR(A,1),TR(A,3),0 To 199
- Dec TR(A,6)
- End If
- Next
- End Proc
- Procedure DRACHUNKS
- For A=0 To ANZTR-1
- If TR(A,6)>1 Then Ink TR(A,4) : Circle TR(A,0),TR(A,1),TR(A,5)
- Next
- End Proc
- Procedure EXLODE1[X,Y,R,ANZ]
- For A=0 To ANZTR-1
- If TR(A,6)<1
- TR(A,4)=1+Rnd(15)
- TR(A,0)=X+Rnd(R*2)-R
- TR(A,1)=Y+Rnd(R*2)-R
- TR(A,6)=Rnd(25)+10
- Repeat
- TR(A,2)=Rnd(6)-3 : TR(A,3)=Rnd(6)-3
- Until TR(A,2) and TR(A,3)
- TR(A,5)=(Abs(TR(A,2))+Abs(TR(A,3)))/2
- Dec ANZ : Exit If ANZ=0
- End If
- Next
- End Proc
- Procedure EXLODE2[X,Y,R,ANZ]
- For A=0 To ANZEX-1
- If EX(A,2)<1
- EX(A,0)=X+Rnd(R*2)-R
- EX(A,1)=Y+Rnd(R*2)-R
- EX(A,2)=Rnd(10)+3
- EX(A,3)=(10-EX(A,2))/2+Rnd(4)
- Dec ANZ : Exit If ANZ=0
- End If
- Next
- End Proc